linalg_cholesky Module


Uses


Interfaces

public interface cholesky_factor

  • private subroutine cholesky_factor_dbl(a, upper, err)

    Computes the Cholesky factorization of a symmetric, positive definite matrix.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(inout), dimension(:,:) :: a

    On input, the N-by-N matrix to factor. On output, the factored matrix is returned in either the upper or lower triangular portion of the matrix, dependent upon the value of upper.

    logical, intent(in), optional :: upper

    An optional input that, if specified, provides control over whether the factorization is computed as (set to true), or as (set to false). The default is true such that .

    class(errors), intent(inout), optional, target :: err

    The error object to be updated.

  • private subroutine cholesky_factor_cmplx(a, upper, err)

    Computes the Cholesky factorization of a symmetric, positive definite matrix.

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=real64), intent(inout), dimension(:,:) :: a

    On input, the N-by-N matrix to factor. On output, the factored matrix is returned in either the upper or lower triangular portion of the matrix, dependent upon the value of upper.

    logical, intent(in), optional :: upper

    An optional input that, if specified, provides control over whether the factorization is computed as (set to true), or as (set to false). The default is true such that .

    class(errors), intent(inout), optional, target :: err

    The error object to be updated.

public interface cholesky_rank1_downdate

  • private subroutine cholesky_rank1_downdate_dbl(r, u, work, err)

    Computes the rank 1 downdate to a Cholesky factored matrix such that . This operation only works if the new matrix is positive definite.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(inout), dimension(:,:) :: r

    On input, the N-by-N upper triangular matrix . On output, the updated matrix .

    real(kind=real64), intent(inout), dimension(:) :: u

    On input, the N-element vector . On output, the rotation sines used to transform to .

    real(kind=real64), intent(out), optional, target, dimension(:) :: work

    An optional argument that if supplied prevents local memory allocation. If provided, the array must have at least N elements.
    Additionally, this workspace array is used to contain the rotation cosines used to transform to .

    class(errors), intent(inout), optional, target :: err

    An error object to report any errors that occur.

  • private subroutine cholesky_rank1_downdate_cmplx(r, u, work, err)

    Computes the rank 1 downdate to a Cholesky factored matrix such that . This operation only works if the new matrix is positive definite.

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=real64), intent(inout), dimension(:,:) :: r

    On input, the N-by-N upper triangular matrix . On output, the updated matrix .

    complex(kind=real64), intent(inout), dimension(:) :: u

    On input, the N-element vector . On output, the rotation sines used to transform to .

    real(kind=real64), intent(out), optional, target, dimension(:) :: work

    An optional argument that if supplied prevents local memory allocation. If provided, the array must have at least N elements.
    Additionally, this workspace array is used to contain the rotation cosines used to transform to .

    class(errors), intent(inout), optional, target :: err

    An error object to report any errors that occur.

public interface cholesky_rank1_update

  • private subroutine cholesky_rank1_update_dbl(r, u, work, err)

    Computes the rank 1 update to a Cholesky factored matrix such that .

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(inout), dimension(:,:) :: r

    On input, the N-by-N upper triangular matrix . On output, the updated matrix .

    real(kind=real64), intent(inout), dimension(:) :: u

    On input, the N-element vector . On output, the rotation sines used to transform to .

    real(kind=real64), intent(out), optional, target, dimension(:) :: work

    An optional argument that if supplied prevents local memory allocation. If provided, the array must have at least N elements.
    Additionally, this workspace array is used to contain the rotation cosines used to transform to .

    class(errors), intent(inout), optional, target :: err

    An error object to report any errors that occur.

  • private subroutine cholesky_rank1_update_cmplx(r, u, work, err)

    Computes the rank 1 update to a Cholesky factored matrix such that .

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=real64), intent(inout), dimension(:,:) :: r

    On input, the N-by-N upper triangular matrix . On output, the updated matrix .

    complex(kind=real64), intent(inout), dimension(:) :: u

    On input, the N-element vector . On output, the rotation sines used to transform to .

    real(kind=real64), intent(out), optional, target, dimension(:) :: work

    An optional argument that if supplied prevents local memory allocation. If provided, the array must have at least N elements.
    Additionally, this workspace array is used to contain the rotation cosines used to transform to .

    class(errors), intent(inout), optional, target :: err

    An error object to report any errors that occur.

public interface solve_cholesky

  • private subroutine solve_cholesky_mtx(upper, a, b, err)

    Solves the system of Cholesky factored equations or .

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: upper

    Set to true if is factored such that ; else, set to false if is factored such that .

    real(kind=real64), intent(in), dimension(:,:) :: a

    The N-by-N Cholesky factored matrix as returned by cholesky_factor.

    real(kind=real64), intent(inout), dimension(:,:) :: b

    On input, the N-by-NRHS matrix . On output, the resulting N-by-NRHS matrix .

    class(errors), intent(inout), optional, target :: err

    An error object to report any errors that occur.

  • private subroutine solve_cholesky_mtx_cmplx(upper, a, b, err)

    Solves the system of Cholesky factored equations or .

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: upper

    Set to true if is factored such that ; else, set to false if is factored such that .

    complex(kind=real64), intent(in), dimension(:,:) :: a

    The N-by-N Cholesky factored matrix as returned by cholesky_factor.

    complex(kind=real64), intent(inout), dimension(:,:) :: b

    On input, the N-by-NRHS matrix . On output, the resulting N-by-NRHS matrix .

    class(errors), intent(inout), optional, target :: err

    An error object to report any errors that occur.

  • private subroutine solve_cholesky_vec(upper, a, b, err)

    Solves the system of Cholesky factored equations or .

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: upper

    Set to true if is factored such that ; else, set to false if is factored such that .

    real(kind=real64), intent(in), dimension(:,:) :: a

    The N-by-N Cholesky factored matrix as returned by cholesky_factor.

    real(kind=real64), intent(inout), dimension(:) :: b

    On input, the N-element vector . On output, the resulting N-element vector .

    class(errors), intent(inout), optional, target :: err

    An error object to report any errors that occur.

  • private module subroutine solve_cholesky_vec_cmplx(upper, a, b, err)

    Solves the system of Cholesky factored equations or .

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: upper

    Set to true if is factored such that ; else, set to false if is factored such that .

    complex(kind=real64), intent(in), dimension(:,:) :: a

    The N-by-N Cholesky factored matrix as returned by cholesky_factor.

    complex(kind=real64), intent(inout), dimension(:) :: b

    On input, the N-element vector . On output, the resulting N-element vector .

    class(errors), intent(inout), optional, target :: err

    An error object to report any errors that occur.